package avicit.bdp.dgs.qa.service;

import avicit.bdp.common.base.BaseService;
import avicit.bdp.dgs.qa.dao.JobResultDAO;
import avicit.bdp.dgs.qa.dto.JobResultDTO;
import org.apache.commons.compress.utils.Lists;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * @金航数码科技有限责任公司
 * @作者：developer
 * @邮箱：developer@avic-digital.com
 * @创建时间： 2023-03-30
 * @类说明：JobService
 * @修改记录：
 * @注意事项：
 * @主要功能：质量作业Service
 */
@Service
public class JobResultService extends BaseService<JobResultDAO, JobResultDTO> {
    /**
     * 查询质量校验结果
     *
     * @param jobId
     * @param processInstanceId
     * @return
     */
    public List<JobResultDTO> getResultList(String jobId, String processInstanceId) {
        if (StringUtils.isEmpty(jobId) || StringUtils.isEmpty(processInstanceId)) {
            return Lists.newArrayList();
        }

        List<JobResultDTO> result = this.mapper.getResultList(jobId, processInstanceId);
        if (result == null) {
            return Lists.newArrayList();
        }

        return result;
    }

    /**
     * 删除任务相关执行结果信息
     *
     * @param jobId
     */
    @Transactional
    public void deleteResultByJobId(String jobId) {
        if (StringUtils.isBlank(jobId)) {
            return;
        }

        this.mapper.deleteResultByCond(jobId, null);
    }

    /**
     * 删除流程实例时任务相关执行结果信息
     *
     * @param processInstanceId
     */
    @Transactional
    public void deleteResultByInstanceId(String processInstanceId) {
        if (StringUtils.isBlank(processInstanceId)) {
            return;
        }

        this.mapper.deleteResultByCond(null, processInstanceId);
    }
}
